home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / ldapjdk.jar / netscape / ldap / LDAPObjectClassSchema.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-13  |  3.2 KB  |  192 lines

  1. package netscape.ldap;
  2.  
  3. import java.util.Enumeration;
  4. import java.util.StringTokenizer;
  5. import java.util.Vector;
  6.  
  7. public class LDAPObjectClassSchema extends LDAPSchemaElement {
  8.    private String superior = "";
  9.    private Vector must = new Vector();
  10.    private Vector may = new Vector();
  11.    private boolean auxiliary = false;
  12.  
  13.    public LDAPObjectClassSchema(String var1, String var2, String var3, String var4, String[] var5, String[] var6) {
  14.       super(var1, var2, var4);
  15.       super.attrName = "objectclasses";
  16.       this.superior = var3;
  17.  
  18.       for(int var7 = 0; var7 < var5.length; ++var7) {
  19.          this.must.addElement(var5[var7]);
  20.       }
  21.  
  22.       for(int var8 = 0; var8 < var6.length; ++var8) {
  23.          this.may.addElement(var6[var8]);
  24.       }
  25.  
  26.    }
  27.  
  28.    public LDAPObjectClassSchema(String var1) {
  29.       super.attrName = "objectclasses";
  30.       var1.trim();
  31.       int var2 = var1.length();
  32.       var1 = var1.substring(2, var2 - 1);
  33.       var2 = var1.length();
  34.       int var3 = var1.indexOf(32);
  35.       super.oid = var1.substring(0, var3);
  36.       char[] var4 = new char[var2];
  37.       var1 = var1.substring(var3 + 1, var2);
  38.       var2 = var1.length();
  39.       var1.getChars(0, var2, var4, 0);
  40.       var3 = 0;
  41.       var2 = var4.length;
  42.  
  43.       while(var3 < var2) {
  44.          String var5;
  45.          for(var5 = ""; var4[var3] == ' '; ++var3) {
  46.          }
  47.  
  48.          int var7;
  49.          for(var7 = var3 + 1; var7 < var2 && var4[var7] != ' '; ++var7) {
  50.          }
  51.  
  52.          if (var3 < var2 && var7 < var2) {
  53.             var5 = new String(var4, var3, var7 - var3);
  54.             var3 = var7;
  55.             if (var5.equalsIgnoreCase("AUXILIARY")) {
  56.                this.auxiliary = true;
  57.                continue;
  58.             }
  59.          } else {
  60.             var3 = var2;
  61.          }
  62.  
  63.          while(var3 < var2 && var4[var3] != '\'' && var4[var3] != '(') {
  64.             ++var3;
  65.          }
  66.  
  67.          var7 = var3 + 1;
  68.          if (var3 >= var2) {
  69.             break;
  70.          }
  71.  
  72.          if (var4[var3] != '\'') {
  73.             Object var8 = null;
  74.             Vector var19;
  75.             if (var5.equalsIgnoreCase("MAY")) {
  76.                var19 = this.may;
  77.             } else {
  78.                if (!var5.equalsIgnoreCase("MUST")) {
  79.                   continue;
  80.                }
  81.  
  82.                var19 = this.must;
  83.             }
  84.  
  85.             while(var7 < var2 && var4[var7] != ')') {
  86.                ++var7;
  87.             }
  88.  
  89.             if (var3 < var7 && var7 < var2) {
  90.                String var17 = new String(var4, var3 + 1, var7 - var3 - 1);
  91.                StringTokenizer var9 = new StringTokenizer(var17, " ");
  92.  
  93.                while(var9.hasMoreTokens()) {
  94.                   String var10 = var9.nextToken();
  95.                   if (!var10.equals("$")) {
  96.                      var19.addElement(var10);
  97.                   }
  98.                }
  99.             }
  100.          } else {
  101.             while(var7 < var2 && var4[var7] != '\'') {
  102.                ++var7;
  103.             }
  104.  
  105.             if (var3 < var7 && var7 < var2) {
  106.                String var6 = new String(var4, var3 + 1, var7 - var3 - 1);
  107.                if (var5.equalsIgnoreCase("NAME")) {
  108.                   super.name = var6;
  109.                } else if (var5.equalsIgnoreCase("DESC")) {
  110.                   super.description = var6;
  111.                } else if (var5.equalsIgnoreCase("SUP")) {
  112.                   this.superior = var6;
  113.                }
  114.             }
  115.          }
  116.  
  117.          var3 = var7 + 1;
  118.       }
  119.  
  120.    }
  121.  
  122.    public String getSuperior() {
  123.       return this.superior;
  124.    }
  125.  
  126.    public Enumeration getRequiredAttributes() {
  127.       return this.must.elements();
  128.    }
  129.  
  130.    public Enumeration getOptionalAttributes() {
  131.       return this.may.elements();
  132.    }
  133.  
  134.    public String getValue() {
  135.       String var1 = "( " + super.oid + " NAME '" + super.name + "' DESC '" + super.description + "' SUP '" + this.superior + "' ";
  136.       if (this.auxiliary) {
  137.          var1 = var1 + "AUXILIARY ";
  138.       }
  139.  
  140.       var1 = var1 + "MUST ( ";
  141.       int var2 = 0;
  142.  
  143.       for(Enumeration var3 = this.getRequiredAttributes(); var3.hasMoreElements(); var1 = var1 + (String)var3.nextElement()) {
  144.          if (var2 > 0) {
  145.             var1 = var1 + " $ ";
  146.          }
  147.  
  148.          ++var2;
  149.       }
  150.  
  151.       var1 = var1 + " ) MAY ( ";
  152.       Enumeration var8 = this.getOptionalAttributes();
  153.  
  154.       for(int var7 = 0; var8.hasMoreElements(); var1 = var1 + (String)var8.nextElement()) {
  155.          if (var7 > 0) {
  156.             var1 = var1 + " $ ";
  157.          }
  158.  
  159.          ++var7;
  160.       }
  161.  
  162.       var1 = var1 + ") )";
  163.       return var1;
  164.    }
  165.  
  166.    public String toString() {
  167.       String var1 = "Name: " + super.name + "; OID: " + super.oid + "; Superior: " + this.superior + "; Description: " + super.description + "; Required: ";
  168.       int var2 = 0;
  169.  
  170.       for(Enumeration var3 = this.getRequiredAttributes(); var3.hasMoreElements(); var1 = var1 + (String)var3.nextElement()) {
  171.          if (var2 > 0) {
  172.             var1 = var1 + ", ";
  173.          }
  174.  
  175.          ++var2;
  176.       }
  177.  
  178.       var1 = var1 + "; Optional: ";
  179.       Enumeration var6 = this.getOptionalAttributes();
  180.  
  181.       for(int var5 = 0; var6.hasMoreElements(); var1 = var1 + (String)var6.nextElement()) {
  182.          if (var5 > 0) {
  183.             var1 = var1 + ", ";
  184.          }
  185.  
  186.          ++var5;
  187.       }
  188.  
  189.       return var1;
  190.    }
  191. }
  192.